iT邦幫忙

2025 iThome 鐵人賽

DAY 3
0

昨天我們搭好了廚房,備好了所有工具。今天,我們就要正式下廚,端出我們的第一道 AI 料理 — Hello, Kernel! 這道菜的目標非常簡單,就是讓我們的 AI 廚師開口說出他的第一句話。透過這個最基本的範例,你將會親身體驗到 Semantic Kernel (SK) 是如何運作的,並對其核心概念有一個初步的了解。

備料:我們需要什麼?

除了昨天準備好的專案之外,我們還需要一樣最重要的「食材」:AI 模型

AI 模型是這場料理的核心,沒有它,廚師就只是個擺設。SK 的設計非常靈活,它支援多種 AI 服務,例如:

  • Azure OpenAI Service
  • OpenAI
  • Google Gemini
  • Hugging Face

小提醒:請務必先到這些服務的官方網站註冊並取得你的 API Key,這是你的廚房通行證!同時,如果你使用的是 Azure OpenAI,別忘了你的 Endpoint 和 Deployment Name。

料理步驟:讓 AI 開口說話!

打開你專案中的 Program.cs 檔案,清空裡面的所有內容,然後貼上以下程式碼。我會一行一行地為你解說,讓你明白每行程式碼的意義。

using Microsoft.SemanticKernel;
using Microsoft.SemanticKernel.ChatCompletion;
using Microsoft.Extensions.Configuration;

// 1. 廚房的總指揮:建立 Kernel Builder
// 這就像是廚師在設定他的工作檯,準備好所有工具和服務。

// 讀取 user-secrets 設定
var config = new ConfigurationBuilder()
    .AddUserSecrets<Program>()
    .Build();

var builder = Kernel.CreateBuilder();

// 2. 邀請 AI 服務進駐廚房
// 這裡我們以 OpenAI 為例,但你可以替換成你使用的任何服務。
// API 金鑰從 user-secrets 取得
var apiKey = config["OpenAI:ApiKey"] ?? throw new Exception("請先設定 user-secrets: OpenAI:ApiKey");
builder.AddOpenAIChatCompletion("gpt-5-mini", apiKey);

// 3. 廚師準備就緒:建構 Kernel 實例
// 所有的服務都準備好了,現在我們正式把 Kernel 實體化,這位廚師可以開始工作了!
var kernel = builder.Build();

// 4. 準備食譜 (提示詞)
// 這是我們給廚師的指令,告訴他我們想要什麼樣的料理。
var prompt = "你好,我是一位 AI 工程師,請用幽默的方式跟我打招呼。";

// 5. 廚師開始料理 (呼叫 AI)
// 執行這段程式碼,廚師會根據你的提示詞,去呼叫 AI 服務並得到結果。
Console.WriteLine("AI 思考中...");
var result = await kernel.InvokePromptAsync(prompt);

// 6. 菜上桌囉!
// 把廚師完成的料理呈現出來,也就是 AI 的回應。
Console.WriteLine($"AI 的回應:{result}");

程式碼解說與執行

這段程式碼雖然簡單,但它包含了 SK 最核心的幾個概念:

  • Kernel.CreateBuilder():這是所有 SK 應用的起點,用來建構和配置你的 Kernel 物件。
  • builder.AddOpenAIChatCompletion(...):這一步非常重要,我們透過這個方法將指定的 AI 服務(這裡是 OpenAI)添加到我們的 Kernel 中。這就像是廚師選擇了他要使用的烤箱或微波爐。
  • builder.Build():完成所有的配置後,我們呼叫 Build() 來產生最終的 Kernel 實例。
  • kernel.InvokePromptAsync(prompt):這是執行提示詞的主要方法。當你呼叫它時,SK 會自動處理所有複雜的細節,將你的提示詞發送給 AI 服務,並返回結果。

現在,打開你的終端機,確保你還在專案目錄下,然後輸入:

dotnet run

你應該會看到類似這樣的輸出:

AI 思考中...
AI 的回應:你好,工程師大大!我是你隨叫隨到的 AI pair-programmer,準備把 bug 變 feature、把 deadline 變 legend。

恭喜你!你已經成功地完成了第一道 AI 料理。你親手寫下的程式碼,成功地與遠端的 AI 進行了互動,並得到了回應。這就是 Semantic Kernel 的魔力,它將複雜的底層 API 呼叫抽象化,讓你專注於更重要的事 — 設計你的提示詞整合你的業務邏輯


今天我們完成了一道簡單的開胃菜,感受到了 AI 的魔力。明天,我們將不會急著上新菜,而是要深入到這間「廚房」的核心 — Kernel 本身。我們會更詳細地了解這位頂級廚師的內部結構和工作流程,讓你知其然,也知其所以然。敬請期待!

完整程式碼範例


上一篇
Day 2: 我們的頂級廚房:設定你的 Semantic Kernel 開發環境
下一篇
Day 4: 廚師的心臟:深入理解 Kernel 的核心角色
系列文
AI 全餐,好吃嗎?用 Semantic Kernel 打造你的客製化滿漢全席!8
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言